package org.example.backend.demos.web.api;

import org.example.backend.demos.web.UserModule.entity.LoginDTO;
import org.example.backend.demos.web.UserModule.entity.LoginResult;
import org.example.backend.demos.web.UserModule.entity.User;
import org.example.backend.demos.web.UserModule.entity.UserDTO;
import org.example.backend.demos.web.common.CheckResult;
import org.example.backend.demos.web.common.Result;
import org.springframework.web.bind.annotation.*;

/**
 * 用户认证API接口
 * 路径：/api/auth
 */
@RequestMapping("/api/auth")
public interface UserApi {

    /**
     * 志愿者注册
     * POST /api/auth/register
     */
    @PostMapping("/register")
    Result<User> register(@RequestBody UserDTO userDTO);

    /**
     * 用户登录
     * POST /api/auth/login
     */
    @PostMapping("/login")
    Result<LoginResult> login(@RequestBody LoginDTO loginDTO);

    /**
     * 检查用户名是否存在
     * GET /api/auth/check-username?username=xxx
     */
    @GetMapping("/check-username")
    Result<CheckResult> checkUsername(@RequestParam String username);

    /**
     * 检查手机号是否存在
     * GET /api/auth/check-phone?phone=xxx
     */
    @GetMapping("/check-phone")
    Result<CheckResult> checkPhone(@RequestParam String phone);
}